﻿<?php

	// 新闻分类删除
	ob_clean();//清除缓存

	$id=$_GET['id'];//接到前台ajax发送过来的id值

	//程序的数据结构和前端的数据结构一样的话就可以不用转码
	//echo ($result->num_rows>0)?1:0;die;

	//对象类型 用->去访问它的下标
	// $result->num_rows>0//>0 表示最少查到一条数据

	//判断是否是ajax发送删除确认请求
	if (!empty($_SERVER['HTTP_X_REQUESTED_WITH'])) {
		//先查询是否有子级
		// $sql="select * from `cate` where pid=$id";
		// //$result 是对象类型
		// $result=mysqli_query($link,$sql);
		//echo ($result->num_rows>0)?1:0;

		//调用封装
		$where="pid=".+$pid;
		$data = getSelect('cate',$where);
		echo (count($data)>0)?1:0;//将判断结果返回到前台，用变量json接收，进行判断
		die;
	}

	//循环逐一的去查询每个分类下是否还有子级
	// while ( $arr=mysqli_fetch_assoc($result)) {
	// 	$pid=$arr['id'];
	// 	$sql="select * from `cate` where pid=$id";
	// 	$result=mysqli_query($link,$sql);
	// }
	// 则使用递归函数比较好

 	$row=getCateDel($id);

	if ($row>0) {
		echo '<script>alert("分类删除成功");location.href="index.php?c=cate&a=list&admin=1";</script>';
	}else
	{
		echo '<script>alert("分类删除失败");history.go(-1);</script>';
	}
	//删除 递归算法
	function getCateDel($pid=0){//pid存储了父级的id值
		// $sql="select * from `cate` where pid=$pid";
		// $result=mysqli_query($GLOBALS['link'],$sql);
		// if ($result->num_rows>0) {//说明有子级
		// 	//循环去查找查询到的子级线面是否还有子级
		// 	while ($arr=mysqli_fetch_assoc($result)) {
		// 		getCateDel($arr['id']);//调用自身进行循环
		// 		//删除不需要返回值
		// 	}
		// }

		//调用封装
		//不用再进行判断，调用查询，然后用foreach循环$data
		$where="pid=".+$pid;
		$data = getSelect('cate',$where);
		foreach ($data as $v) {
			getCateDel($v['id']);

		}

		// echo $pid;
		// echo '<br>';
		// return true;
		//删除所有的分类数据
		// $sql="delete from `cate` where id=$pid";
		// mysqli_query($GLOBALS['link'],$sql);
		// return mysqli_affected_rows($GLOBALS['link']);

		//调用封装好的删除语句
		$where="id=".+$pid;
		return del('cate',$where);//需要添加返回，否则在取到值的时候没有返回就不会进行操作成功的判断，会不提示修改成功
	}
 ?>
